﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Docente;

namespace SanFrancisco
{
    public partial class CargarAsistenciaDocente : Form
    {
        public CargarAsistenciaDocente()
        {
            InitializeComponent();
        }

        private void CargarAsistenciaDocente_Load(object sender, EventArgs e)
        {
            CargarDocentes();
            // TODO: This line of code loads data into the 'sanFranciscoDataSet.AsistenciaDocente' table. You can move, or remove it, as needed.
            //this.asistenciaDocenteTableAdapter.Fill(this.sanFranciscoDataSet.AsistenciaDocente);

        }

        private void CargarDocentes()
        {
            DocenteDataContext Docente = new DocenteDataContext();
            gridAsistencia.AutoGenerateColumns = false;
            gridAsistencia.DataSource = Docente.DocentesTodos();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            DocenteDataContext Docente = new DocenteDataContext();
            //Con esto pasamos lo del stored a una lista del objeto
            IEnumerable<ValidarAsistenciaDocentesResult> a;
            a = ((IEnumerable<ValidarAsistenciaDocentesResult>)Docente.ValidarAsistenciaDocentes(dpFecha.Value));
            List<ValidarAsistenciaDocentesResult> result = new List<ValidarAsistenciaDocentesResult>();
            result = a.ToList();

            if (result[0].Cantidad > 0)
            {
                MessageBox.Show("Ya existe asistencia en esa fecha.");
            }
            else
            {
                if (dpFecha.Value > DateTime.Now)
                {
                    MessageBox.Show("No se pueden cargar asistencias con fechas mayores a la actual.");
                }
                else
                {
                    int DNI;
                    bool Asistio;
                    for (int Fila = 0; Fila < gridAsistencia.Rows.Count; Fila++)
                    {

                        DNI = ((int)gridAsistencia.Rows[Fila].Cells["DNIDocente"].Value);
                        if ((gridAsistencia.Rows[Fila].Cells["Asistio"].Value) == null)
                        {
                            Asistio = false;
                        }
                        else
                        {
                            Asistio = ((bool)gridAsistencia.Rows[Fila].Cells["Asistio"].Value);

                        }
                        AsistenciaDocente AsisDocente = new AsistenciaDocente();
                        AsisDocente.Asistio = Asistio;
                        AsisDocente.Fecha = dpFecha.Value;
                        AsisDocente.DNIDocente = DNI;
                        DocenteManager DocenteManager = new DocenteManager();
                        DocenteManager.guardarInasistenciaDocente(AsisDocente);

                    }
                    MessageBox.Show("Asistencias de docentes ingresadas con exito");
                    this.Close();
                }
            }
        }
    }
}
